package com.baizhi.util;

import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

//获取线程池的工具类
public class ThreadPollUtil {
    private static int corePoolSize = Runtime.getRuntime().availableProcessors();

    /**
     * 重点：  注意这三个参数  这是企业自己开发线程池工具类常用到的参数  要记住它们的作用
     * java.util.concurrent(并发包)中自带的创建线程池ExecutorService es = Executors.newFixedThreadPool(2);
     * 企业中一般不采用并发包中的方法   都是自己封装工具类获取线程池对象
     * corePoolSize用于指定核心线程数量
     * maximumPoolSize指定最大线程数
     * keepAliveTime和TimeUnit指定线程空闲后的最大存活时间
     */
    public static ThreadPoolExecutor executor  = new ThreadPoolExecutor(corePoolSize, corePoolSize+1, 10l, TimeUnit.SECONDS,
            new LinkedBlockingQueue<Runnable>(1000));
}
